/**
 *   颜色渐变
 *   num：颜色个数
 */
export function gradientColor(startColor, endColor, num) {
  var rgb = /^rgb|RGB\((([0-9]|[1-9]\d|1\d\d|2([0-4]\d|5[0-5])),){2}([0-9]|[1-9]\d|1\d\d|2([0-4]\d|5[0-5]))\)$/ // rgb
  var hex = /(^#[0-9A-F]{6}$)|(^#[0-9A-F]{3}$)/i // 16进制
  // 颜色预处理
  var startRGB, endRGB
  if (hex.test(startColor)) {
    startRGB = fAnalysisRGB(startColor)
  } else if (rgb.test(startColor)) {
    startRGB = startColor.substring(3, 15).split(',')
  }
  if (hex.test(endColor)) {
    endRGB = fAnalysisRGB(endColor)
  } else if (rgb.test(startColor)) {
    endRGB = endColor.substring(3, 15).split(',')
  }
  console.log(startRGB)
  var startR = startRGB?.[0]; var startG = startRGB?.[1]; var startB = startRGB?.[2]
  var endR = endRGB[0]; var endG = endRGB[1]; var endB = endRGB[2]

  var sR = (endR - startR) / num
  var sG = (endG - startG) / num
  var sB = (endB - startB) / num

  var colors = []
  for (var i = 0; i < num; i++) {
    colors.push(fColorToHex(parseInt((sR * i + startR)), parseInt((sG * i + startG)), parseInt((sB * i + startB))))
  }
  return colors
}

/**
*   解析rgb格式
*/
function fAnalysisRGB(colorval) {
  var color = colorval.toLowerCase().substring(1, colorval.length)
  var colors = []
  colors.push(parseInt(color.substring(0, 2), 16))
  colors.push(parseInt(color.substring(2, 4), 16))
  colors.push(parseInt(color.substring(4, 6), 16))
  return colors
}

/**
*   rgb转hex
*/
function fColorToHex(r, g, b) {
  var hex = '#' + fAddZero(r.toString(16)) + fAddZero(g.toString(16)) + fAddZero(b.toString(16))
  return hex
}

/**
*   加0补位
*/
function fAddZero(v) {
  var newv = '00' + v
  return newv.substring(newv.length - 2, newv.length)
}

/**
 * moneyFormat(s,type)
 * 功能：金额按千位逗号分割
 * 参数：s，需要格式化的金额数值.
 * 参数：type,判断格式化后的金额是否需要小数位.
 * 返回：返回格式化后的数值字符串.
**/
export function moneyFormat(s, type) {
  if (!s) return '0'
  var values = s.toFixed(2)
  var value2Array = values.split('.')
  var intPart = value2Array[0] // 获取整数部分
  var intPartFormat = intPart
    .toString()
    .replace(/(\d)(?=(?:\d{3})+$)/g, '$1,') // 将整数部分逢三一断

  return intPartFormat + '.' + value2Array[1]
}

// 产品名字显示处理
export function getProductName(data) {
  var productName = data?.productName ? `${data?.productName} - ` : ''
  var productPopularName = data?.productPopularName ? `${data?.productPopularName} - ` : ''
  var packSpecs = data?.packSpecs ? `${data?.packSpecs}` : ''
  var producer = data?.producer ? ` - ${data?.producer}` : ''
  var name = `${productName}${productPopularName}${packSpecs}${producer}`
  return name
}
